---
title: SectionPackManager 区域打包管理器
icon: Package
relatedFile: app/src/core/stage/stageManager/concreteMethods/StageSectionPackManager.tsx
---

舞台区域（Section）的打包与解包管理。

## 区域折叠与展开

该服务负责处理舞台上区域（Section）的折叠与展开操作，包括递归地隐藏或显示其子实体，以管理视图的可见性。

## 节点与区域转换

提供将文本节点（TextNode）转换为区域（Section）的功能，支持单个节点转换以及树状结构节点的递归或非递归转换，便于组织和结构化内容。

## 实体打包与解包

允许将多个舞台实体打包成一个新的区域，实现内容的聚合。同时，也支持将现有区域解包，将其转换为文本节点并释放其内部子内容，以进行细粒度编辑。

## API

### `packSection(): void`

折叠所有选中的区域，并递归隐藏其子实体。

### `unpackSection(): void`

展开所有选中的区域，并递归显示其子实体。

### `switchCollapse(): void`

切换所有选中区域的折叠状态。

### `textNodeToSection(): void`

将所有选中的文本节点转换为独立的区域。

### `textNodeTreeToSection(rootNode: TextNode): void`

递归地将一个文本节点树转换为嵌套的区域结构。

### `textNodeTreeToSectionNoDeep(rootNode: TextNode): void`

非递归地将一个文本节点树转换为嵌套的区域结构。

### `targetTextNodeToSection(textNode: TextNode, ignoreEdges: boolean): Section`

将指定的文本节点转换为区域，并处理相关边的连接。

### `unpackSelectedSections(): void`

解包所有选中的区域，将其转换为文本节点并释放其子内容。

### `packEntityToSection(addEntities: Entity[]): Promise<void>`

将多个实体打包成一个新的区域。
